//
//  UIViewController+ACJump.h
//  ACFramework
//
//  Created by caoyq on 2019/7/11.
//

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

/**
 * 全局跳转到任意控制器
 */
@interface UIViewController (ACJump)

/**
 * 跳转控制器，带动画

 @param vcName 控制器名字
 @param parameter 参数
 */
- (void)ac_pushToVCName: (NSString *)vcName
              parameter: (nullable NSDictionary *)parameter;

/**
 * 跳转控制器

 @param vcName 控制器名字
 @param parameter 参数
 @param animated 是否有动画
 */
- (void)ac_pushToVCName: (NSString *)vcName
              parameter: (nullable NSDictionary *)parameter
               animated: (BOOL)animated;

/**
 * 执行控制器间的回调与传参，可在栈上任意控制中执行回调函数
 * 要求：在传入的vcNames控制器中，实现自定义的方法，方法为：- (void)receiveOperationCallBack: (NSDictionary *)param;

 @param vcNames 需要执行回调的控制器名字数组
 @param parameter 传参
 */
- (void)ac_performCallBackWithVCNames: (NSArray<NSString *> *)vcNames parameter: (NSDictionary *)parameter;

@end

NS_ASSUME_NONNULL_END
